package com.wems.farm_manage.service.impl;

import java.util.List;

import com.wems.common.annotation.DataScope;
import com.wems.common.utils.DateUtils;
import com.wems.farm_manage.domain.DeptFarmMapping;
import com.wems.farm_manage.mapper.DeptFarmMappingMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.wems.farm_manage.mapper.WindFarmMapper;
import com.wems.farm_manage.mapper.DeptFarmMappingMapper;
import com.wems.farm_manage.domain.WindFarm;
import com.wems.farm_manage.service.IWindFarmService;
import com.wems.farm_manage.domain.vo.WindFarmVo;
import java.util.Collections;

/**
 * 风场管理Service业务层处理
 *
 * @author MPC
 * @date 2025-04-05
 */
@Service
public class WindFarmServiceImpl implements IWindFarmService {
    @Autowired
    private WindFarmMapper windFarmMapper;

    @Autowired
    private DeptFarmMappingMapper DeptFarmMappingMapper;

    /**
     * 查询风场管理
     *
     * @param farmId 风场管理主键
     * @return 风场管理
     */
    @Override
    public WindFarm selectWindFarmByFarmId(Long farmId) {
        return windFarmMapper.selectWindFarmByFarmId(farmId);
    }

    /**
     * 查询风场管理列表
     *
     * @param windFarm 风场管理
     * @return 风场管理
     */
    @Override
    public List<WindFarm> selectWindFarmList(WindFarm windFarm) {
        return windFarmMapper.selectWindFarmList(windFarm);
    }

    /**
     * 新增风场管理
     *
     * @param windFarm 风场管理
     * @return 结果
     */
    @Override
    public int insertWindFarm(WindFarm windFarm) {
        windFarm.setCreateTime(DateUtils.getNowDate());
        return windFarmMapper.insertWindFarm(windFarm);
    }

    /**
     * 修改风场管理
     *
     * @param windFarm 风场管理
     * @return 结果
     */
    @Override
    public int updateWindFarm(WindFarm windFarm) {
        windFarm.setUpdateTime(DateUtils.getNowDate());
        return windFarmMapper.updateWindFarm(windFarm);
    }

    /**
     * 批量删除风场管理
     *
     * @param farmIds 需要删除的风场管理主键
     * @return 结果
     */
    @Override
    public int deleteWindFarmByFarmIds(Long[] farmIds) {
        return windFarmMapper.deleteWindFarmByFarmIds(farmIds);
    }

    /**
     * 删除风场管理信息
     *
     * @param farmId 风场管理主键
     * @return 结果
     */
    @Override
    public int deleteWindFarmByFarmId(Long farmId) {
        return windFarmMapper.deleteWindFarmByFarmId(farmId);
    }

    /**
     * 查询风场管理列表
     *
     * @param windFarm 风场管理
     * @return List<WindFarmVo>集合
     */
    @DataScope(deptAlias = "d")
    @Override
    public List<WindFarmVo> selectWindFarmVoList(WindFarm windFarm) {
        return windFarmMapper.selectWindFarmVoList(windFarm);
    }


    /**
     * 修改所属部门
     * @params farmId,deptId 对应风场的修改的部门
     * @return 结果
     */
    @Override
    public int updateWindFarmDept(Long farmId,Long deptId){
        return windFarmMapper.updateWindFarmDept(farmId,deptId);
    }
}
